Micron Document
Livres et Wikis | Archives | Info


Proactor pattern
layout: Wide Β· Narrow Β· Centered
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Proactor is a software design pattern for event handling in which long running activities are running in an asynchronous part. A completion handler is called after the asynchronous part has terminated. The proactor pattern can be considered to be an asynchronous variant of the synchronous reactor pattern.cite-ref-1[1]

Contents

β€’ Interaction
β€’ See also
β€’ References

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Interaction

Operation specific actors:

β€’ The Proactive Initiator starts the asynchronous operation via the Asynchronous Operation Processor and defines the Completion Handler
β€’ Completion Handler is a call at the end of the operation from the Asynchronous Operation Processor
β€’ Asynchronous Operation

Standardized actors

β€’ The Asynchronous Operation Processor controls the whole asynchronous operation
β€’ The Completion Dispatcher handles the call, depending on the execution environment.

Implementations

β€’ Proactor and Boost.Asio (C++)
β€’ RJR (Ruby)

See also

β€’ Reactor pattern (a pattern that also asynchronously queues events, but demultiplexes and dispatches them synchronously)

References

cite-note-11. ↑ Pattern-Oriented Software Architecture, Volume 2, Schmidt et al., Jon Wiley & Sons, Ltd, 2000

External links

β€’ Proactor - An Object Behavioral Pattern for Demultiplexing and Dispatching Handlers for Asynchronous Events, Irfan Pyarali, Tim Harrison, Douglas C. Schmidt, Thomas D. Jordan, 1997 (pdf 143 kB)